package com.codi.bus.core.service;

import com.codi.bus.core.domain.UserBank;
import com.codi.bus.core.resultModel.CommonDataResult;
import com.codi.bus.core.resultModel.PayableBankListResult;
import com.codi.bus.core.service.model.BankLimitModel;
import com.codi.bus.exception.BaseException;

import java.util.List;


public interface BankService {
    List<UserBank> getListByUserId(Long userId) throws BaseException;

    //获得非柜台开户的银行卡列表
    List<UserBank> getBankCardsNotInCounter(Long userId) throws BaseException;

    PayableBankListResult getPayBanks(String capitalMode) throws BaseException;

    CommonDataResult<BankLimitModel> getPayBankLimits(String capitalMode, String bankCode) throws BaseException;

    /**
     * 通过交易账号获取银行卡信息
     *
     * @param tradeAccount
     * @return
     * @Author spy 2017-11-7 13:46:53
     */
    UserBank getByTradeAccount(String tradeAccount);

    /**
     * 查询银行卡
     *
     * @param userId
     * @param tradeAccount
     * @return
     * @Author spy 2017-11-8 10:11:01
     */
    UserBank get(Long userId, String tradeAccount);


    /**
     * 通过银行卡号查询
     *
     * @param userId
     * @param bankNo
     * @return
     * @author spy
     * @version 1.0
     */
    UserBank getByBankNo(Long userId, String bankNo, String capitalMode);


    /**
     * 获取银行卡列表
     *
     * @param userId
     * @param bankNo
     * @return
     */
    List<UserBank> getBanks(Long userId, String bankNo);

    List<UserBank> getBanksNew(Long userId, String bankNo, String capitalMode);

    boolean updateByPrimaryKey(UserBank userBank);

}
